Skip to content

Fix trigger action updates and dialogue continuation semantics#101

Merged
modawan merged 1 commit intomodawan:masterfrom
Eldbury:clean-pr-engine-fixes
Apr 25, 2026
Merged

Fix trigger action updates and dialogue continuation semantics#101
modawan merged 1 commit intomodawan:masterfrom
Eldbury:clean-pr-engine-fixes

Conversation

@Eldbury
Copy link
Copy Markdown

@Eldbury Eldbury commented Apr 24, 2026

Summary

This PR contains the gameplay/runtime fixes split out from the earlier mixed branch.

Included:

  • trigger Object::update(dt) fix so delayed/queued trigger actions actually advance
  • dialogue continuation fix around ClearAllActions()
  • the gameplay/runtime semantics behind the Endar Spire / Trask / Carth progression fixes
  • Area::startDialog() fix to use the resolved conversation resref

Not included:

  • developer observability tools
  • movie/audio suppression changes
  • docs/scripts/evals/log junk

ClearAllActions note

The failure mode here is that the currently executing front action can call ClearAllActions() on its owner while it is still running. The old implementation trims from the back, which can delete the queued continuation that the current action is about to hand off to.

This PR tracks the currently executing action via _executingAction and preserves that active front action and its continuation chain when clearAllActions(false) is called during execution.

I did not use a temporary Action::lock() approach here because the goal is not just to preserve the executing action object; it is to preserve the active front-of-queue handoff/continuation semantics without changing the broader action-locking model.

Verification

  • manual Endar Spire progression validation covering the affected sequence/dialogue flow
  • local Windows Release build passed
  • local unit tests passed
  • combined smoke-stack test passed

Expected sibling PR overlap

This branch may need a small follow-up rebase if the dev-tools PR lands first.

Expected overlap is limited to:

  • src/libs/game/object/area.cpp
  • src/libs/game/object/trigger.cpp

Copy link
Copy Markdown
Owner

@modawan modawan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great, thank you!

@modawan modawan merged commit 7f2fc4d into modawan:master Apr 25, 2026
2 checks passed
@Eldbury Eldbury deleted the clean-pr-engine-fixes branch April 26, 2026 00:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants